home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks97
/
WarriorsProgress.sit
/
Warrior’s Progress
/
source code
/
Source
/
Libraries
/
Files
/
FileLocation.h
< prev
next >
Wrap
Text File
|
1997-06-28
|
3KB
|
101 lines
// FileLocation.h
#ifndef FileLocation_h
#define FileLocation_h
#ifndef VolumeID_h
#include "VolumeID.h"
#endif
#ifndef DirectoryID_h
#include "DirectoryID.h"
#endif
#ifndef ConstPString_h
#include "ConstPString.h"
#endif
#ifndef FileType_h
#include "FileType.h"
#endif
#ifndef FileSignature_h
#include "FileSignature.h"
#endif
#ifndef ScriptID_h
#include "ScriptID.h"
#endif
#ifndef FileID_h
#include "FileID.h"
#endif
#ifndef Directory_h
#include "Directory.h"
#endif
class PString;
class FileLocation: public FSSpec
{
private:
static void ThrowError( OSErr );
public:
FileLocation();
FileLocation( const FSSpec& source ) : FSSpec( source ) {}
FileLocation( Directory );
FileLocation( Directory, ConstPString );
VolumeID Volume() const { return VolumeID::Make( vRefNum ); }
DirectoryID ParentID() const { return DirectoryID::Make( parID ); }
Directory Parent() const { return Directory( Volume(), ParentID() ); }
ConstPString Name() const { return name; }
void Set( Directory, ConstPString );
void operator=( Directory );
void SetVolume( VolumeID v ) { vRefNum = v.RefNum(); };
void SetParentID( DirectoryID d ) { parID = d.Number(); };
void SetParent( Directory d ) { vRefNum = d.Volume().RefNum(); parID = d.ID().Number(); };
void SetName( ConstPString );
void SetName( ConstPString, uint32 );
Directory AsDirectory() const;
bool NameIsValid() const;
void SetToValidName( ConstPString );
void SetToValidName();
bool operator==( const FileLocation& ) const;
bool operator!=( const FileLocation& r ) const { return !(*this == r); }
bool Exists() const;
void FindUnusedName();
void CreateFile( FileType,
ScriptID script = ScriptID::Make( smSystemScript ) ) const;
void CreateFile( FileType,
FileSignature,
ScriptID script = ScriptID::Make( smSystemScript ) ) const;
Directory CreateDirectory( ScriptID script = ScriptID::Make( smSystemScript ) ) const;
void Delete() const;
void Lock() const;
void Unlock() const;
void MoveFrom( const FileLocation& ) const;
void SwapWith( const FileLocation& ) const;
bool IsRoot() const { return ParentID() == DirectoryID::AboveRoot(); }
void Up();
void Down( ConstPString );
void Sideways( ConstPString );
FileLocation Child( ConstPString ) const;
FileLocation Sibling( ConstPString ) const;
DirectoryID GetDirectoryID() const;
FileID GetFileID() const;
};
#endif